package com.geo.keyword.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

/**
 * 关键词创建请求DTO
 */
public class KeywordCreateRequest {
    
    /**
     * 关键词文本
     */
    @NotBlank(message = "关键词不能为空")
    @Size(max = 100, message = "关键词长度不能超过100个字符")
    private String keyword;
    
    /**
     * 关键词分类
     */
    @NotBlank(message = "关键词分类不能为空")
    private String category;
    
    /**
     * 优先级
     */
    @NotNull(message = "优先级不能为空")
    private String priority;
    
    /**
     * 描述
     */
    @Size(max = 500, message = "描述长度不能超过500个字符")
    private String description;
    
    /**
     * 搜索量
     */
    private Long searchVolume;
    
    /**
     * 优化难度
     */
    private Double difficulty;
    
    /**
     * 目标URL
     */
    private String targetUrl;
    
    /**
     * 标签
     */
    private String tags;
    
    /**
     * 商户ID
     */
    private String merchantId;
    
    // 构造函数
    public KeywordCreateRequest() {}
    
    // Getters and Setters
    public String getKeyword() {
        return keyword;
    }
    
    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }
    
    public String getCategory() {
        return category;
    }
    
    public void setCategory(String category) {
        this.category = category;
    }
    
    public String getPriority() {
        return priority;
    }
    
    public void setPriority(String priority) {
        this.priority = priority;
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public Long getSearchVolume() {
        return searchVolume;
    }
    
    public void setSearchVolume(Long searchVolume) {
        this.searchVolume = searchVolume;
    }
    
    public Double getDifficulty() {
        return difficulty;
    }
    
    public void setDifficulty(Double difficulty) {
        this.difficulty = difficulty;
    }
    
    public String getTargetUrl() {
        return targetUrl;
    }
    
    public void setTargetUrl(String targetUrl) {
        this.targetUrl = targetUrl;
    }
    
    public String getTags() {
        return tags;
    }
    
    public void setTags(String tags) {
        this.tags = tags;
    }
    
    public String getMerchantId() {
        return merchantId;
    }
    
    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }
}